02. Clustering
Clustering
Graphic
Project Overview
For enhanced perception in autonomous driving, there is a need to track multiple targets separately. The object tracking is computationally expensive and tracking multiple targets simultaneously requires lots of processing power and memory.
Due to the advancements in radar technology and increasing sensing resolutions, a radar can generate detections from plentitude of scattering points on the target. If a tracker is assigned to every detection from the same target, then it can overburden the processing unit. Hence, it is important to cluster the detections from every target and assign a single track for each.
This is where the clustering algorithm becomes important for successful object tracking.
L4A21 Clustering - Concept V2
System Requirements
Here we will discuss the basic clustering algorithm based on the euclidean distance. The algorithm here groups the detection points based on their proximity measured by the euclidean distance between those points.
All the detection points that are within the size of the target are considered as one cluster, merged into a centroid position. Each cluster is now assigned a new range and velocity, which is the mean of measured range and velocity of all the detection points that form the cluster.
This allows valid tracking for each target.
Clustering
Clustering
Above is an illustration of the clustering scenario. In the image the blue car is an ego vehicle (vehicle with sensor) and the detections are generated from the orange and yellow vehicles. Using clustering algorithm all the detections associated with the single target are merged into one point. This helps in the detection and assigning the tracks to a target.
Matlab Implementation of Clustering
L4A27 - Example
MATLAB implementation of Clustering Algorithm
Signal Propagation and Moving Target Scenario
The clustering implementation above uses the following steps:
- If the detections are from same sensor, then loop through every single detection point and measure the euclidean distance between all of them.
- Keep running the loop until the detection list is empty
Implement the following within the while loop:
-
Pick the first detection in the check list and check for its clustering neighbors.
-
If the distance between the first pick and remaining detections is less than the vehicle size, then group those detections and their respective radar sensor measurements, including range and velocity.
-
For the group, take the mean of the range and velocity measurements.
Note: the radar measurement vector has 6 values - where range and velocity for x and y coordinates reside at indices 1,2, 4, and 5:
[x, y, - , Vx, Vy, -]
-
Create a new Cluster ID. Then, assign all the group detections to the same ID.
-
Further, assign cluster, the mean range and velocity.
-
In the end, delete from the list the detections which have already been assigned to a cluster.
-
Keep repeating the process until the detection list is empty.
QUIZ QUESTION: :
Match the responses with the scenarios described below.
ANSWER CHOICES:
Grouping Distance vs. Target Length |
Tracks vs. Target |
---|---|
Single track will get assigned to two or more closely located targets |
|
Multiple Tracks will be assigned to a single target |
SOLUTION:
Grouping Distance vs. Target Length |
Tracks vs. Target |
---|---|
Single track will get assigned to two or more closely located targets |
|
Multiple Tracks will be assigned to a single target |